import Spin from './spin.js'

let spinInstance

function getSpinInstance (render = undefined) {
  spinInstance = spinInstance || Spin.newInstance({
    render: render
  })

  return spinInstance
}

function loading (options) {
  const render = ('render' in options) ? options.render : undefined
  let instance = getSpinInstance(render)

  instance.show(options)
}

Spin.show = function (props = {}) {
  return loading(props)
}
Spin.hide = function () {
  if (!spinInstance) return false

  const instance = getSpinInstance()

  instance.remove(() => {
    spinInstance = null
  })
}

export default Spin
